A content management system (CMS) provides a framework for website authoring, collaboration, and administration. A user with little or no programming or webpage design knowledge can enter his or her own content, such as press releases, images, articles, new personnel biographies, etc., into a website design provided by a knowledgeable website designer and/or programmer. In this paradigm, the user can purchase a professionally developed website and then populate it with his or her own new content without requiring the services of the website vendor to update the website with the new content. Instead, the website is equipped with a CMS through which the user can enter his or her content so that the content is rendered within the consistent design of the originally developed website.
For example, a business' website may be professionally designed using templates to provide a consistent theme, including without limitation, the color, size, placement and styles of titles, controls, text, etc. Typically, such themes are propagated throughout the website within some limited variation to maintain a sense of unity within the website. However, the content of such websites can change as the communication needs of the business change. An example is the addition of a press release on a new product—the business will typically want to post the press release on its website. The user can input the press release content into a website via a CMS, which combines the new content with master page templates and/or page layout templates to create a new consistently designed webpage containing the new content for the website.
In some environments, a CMS is based on a static markup language, such as HTML. The content and web templates are combined offline and stored as static HTML until a user accesses the new webpage (e.g., using a URL referencing the new webpage), at which point a web server retrieves the static webpage and presents it to the requesting user (e.g., through the user's browser). In other environments, a CMS is based on dynamic rendering of each webpage upon request (e.g., the HTML defining the requested webpage is dynamically rendered in response to the user's request). The latter approach can provide more sophisticated and adaptive features within the website.
However, while developers and web authoring environments for static HTML CMSs are numerous, there are fewer developers and web authoring environment choices for dynamic rendering within content management systems. It is a considerable challenge to provide a static HTML developer using a static HTML authoring tool with options for providing dynamically rendered web templates for use in a CMS.